package me.zhengjie.minbearwcs.dao.outbound.inf;

import me.zhengjie.minbearwcs.entity.PO.wcs.outbound.OutboundOrder;
import me.zhengjie.minbearwcs.entity.PO.wcs.outbound.status.OutboundOrderStatus;

import java.time.LocalDateTime;
import java.util.List;

public interface OutboundOrderDao {

    boolean insert(OutboundOrder outboundOrder);

    List<OutboundOrder> selectByNeedStockUp(Integer needStockUp);

    List<String> selectNeedStockUpOutboundOrder(OutboundOrderStatus status, Integer needStockUp);

    List<OutboundOrder> selectInOutboundCodeOrder(List<String> outboundOrderCodeList);

    OutboundOrderStatus selectStatusByOutboundOrderCode(String outboundOrderCode);

    boolean updateStartTimeByOutboundOrderCode(String outboundOrderCode, LocalDateTime startTime);

    boolean updateStatusByOutboundOrderCode(String outboundOrderCode,OutboundOrderStatus status);

    boolean updatePriorityByOutboundOrderCode(String outboundOrderCode,Integer priority);

    OutboundOrder selectByOrderCode(String orderCode);

    boolean deleteById(Integer id);

    boolean updateNeedStockUpByOutboundOrderCode(String outboundOrderCode,Integer needStockUp);
}
